docs: def MatchRouter(self, request):
      """Returns a router for a given HTTP request."""
      router = api_auth_manager.API_AUTH_MGR.GetRouterForUser(request.user)
      routing_map = self._GetRoutingMap(router)
  
      matcher = routing_map.bind(
          "%s:%s" %
          (request.environ["SERVER_NAME"], request.environ["SERVER_PORT"]))
      try:
        match = matcher.match(request.path, request.method)
      except werkzeug_exceptions.NotFound:
        raise ApiCallRouterNotFoundError("No API router was found for (%s) %s" %
                                         (request.path, request.method))
  
      router_method_metadata, route_args_dict = match
      return (router, router_method_metadata,
              self._GetArgsFromRequest(request, router_method_metadata,
                                       route_args_dict))