<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_match_history(self, account_id=None, **kwargs):
 """Returns a dictionary containing a list of the most recent Dota matches :param account_id: (int, optional) :param hero_id: (int, optional) :param game_mode: (int, optional) see ``ref/modes.json`` :param skill: (int, optional) see ``ref/skill.json`` :param min_players: (int, optional) only return matches with minimum amount of players :param league_id: (int, optional) for ids use ``get_league_listing()`` :param start_at_match_id: (int, optional) start at matches equal to or older than this match id :param matches_requested: (int, optional) defaults to ``100`` :param tournament_games_only: (str, optional) limit results to tournament matches only :return: dictionary of matches, see :doc:`responses </responses>` """

        if 'account_id' not in kwargs:
            kwargs['account_id'] = account_id
        url = self.__build_url(urls.GET_MATCH_HISTORY, **kwargs)
        req = self.executor(url)
        if self.logger:
            self.logger.info('URL: {0}'.format(url))
        if not self.__check_http_err(req.status_code):
            return response.build(req, url, self.raw_mode)