def METHOD_NAME(environ, start_response, mapper):
    """Find a matching route for the current request.
    :raises: 404(not found) if no match request
             405(method not allowed) if route exist but
                method not provided.
    """
    result = mapper.match(environ=environ)
    if result is None:
        info = environ.get('PATH_INFO', '')
        LOG.debug('The route for %s can not be found', info)
        raise webob.exc.HTTPNotFound(
            json_formatter=util.json_error_formatter)
    handler = result.pop('action')
    environ['wsgiorg.routing_args'] = ((), result)
    return handler(environ, start_response)