protected function dispatch(Router $driver, $name, Resolver $resolver)
    {
        // Next we need to the action and parameters before we can call
        // the destination controller, the resolver would determine both
        // restful and resource controller.
        list($action, $parameters) = $this->findRoutableAttributes($resolver);

        $route = new Route((array) $resolver->getVerb(), "{$driver->get('id')}/{$name}", [
            'uses' => $resolver->getController()."@{$action}",
        ]);

        $route->overrideParameters($parameters);

        // Resolve the controller from container.
        $dispatcher = new ControllerDispatcher($this->router, $this->app);

        return $dispatcher->dispatch($route, $this->request, $resolver->getController(), $action);
    }