public function findResource($uri, string $requestMethod = null): UriResource
    {
        $calledUri      = CalledUri::castFrom($uri, $requestMethod);
        $matchingRoutes = $this->routes->match($calledUri);
        if ($matchingRoutes->hasExactMatch()) {
            return $this->handleMatchingRoute(
                    $calledUri,
                    $matchingRoutes->exactMatch()
            );
        }

        if ($matchingRoutes->exist()) {
            return $this->handleNonMethodMatchingRoutes(
                    $calledUri,
                    $matchingRoutes
            );
        }

        return new NotFound(
                $this->injector,
                $calledUri,
                $this->collectInterceptors($calledUri),
                $this->supportedMimeTypes()
        );
    }