async def METHOD_NAME(self, route, *, files=None, header_bypass_delay=None, **kwargs):
    req = Request(route.method, route.url, kwargs.get("data") or kwargs.get("json"))
    log.info(str(req))
    request_route = f"{req.method} {req.url.split(Route.BASE)[-1]}"
    try:
        endpoint = next(k for k in RESPONSES if fnmatchcase(request_route, k))
    except StopIteration:
        raise RuntimeError("Bot requested an endpoint we don't have a test for")
    # ignore typing events
    if not fnmatchcase(request_route, "POST /channels/*/typing"):
        await self._request_check_queue.put(req)
    return RESPONSES[endpoint](req.data)