<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def refresh_token(self, token, new_refresh=False):
 """ Issue a new access token using a valid refresh token :param token: Refresh token :param new_refresh: Whether a new refresh token should be minted or not :return: Dictionary with session info :raises: ExpiredToken for invalid refresh token WrongTokenType for wrong token type """


        try:
            _tinfo = self.handler['refresh_token'].info(token)
        except KeyError:
            return False

        if is_expired(int(_tinfo['exp'])) or _tinfo['black_listed']:
            raise ExpiredToken()

        _sid = _tinfo['sid']
        session_info = self[_sid]

        session_info = self.replace_token(_sid, session_info, 'access_token')

        session_info["token_type"] = self.handler['access_token'].token_type

        if new_refresh:
            session_info = self.replace_token(_sid, session_info,
                                              'refresh_token')

        self[_sid] = session_info
        return session_info