private function bootForRequest()
    {
        $request = Request::getInstance();

        //Set error configuration and logging options
        $this->setErrorConfigurations($request);

        //Match routes
        $route = Router::getInstance()->matchRequest($request);
        abort_unless($route instanceof Route, 404);

        //Get target controller or closure
        $target = $route->getTarget();
        if (!$target instanceof Closure) {
            $target = $this->getControllerLogic($target);
        }

        return [$route, $target];
    }