private static function dispatch()
 {
     $controllerClassName = self::$request->getControllerClassName();
     $actionFuncName = self::$request->getActionFuncName();
     if (!is_callable(array($controllerClassName, $actionFuncName))) {
         throw new PageNotFoundException("{$controllerClassName}->{$actionFuncName} not found.");
         return;
     }
     $controller = new $controllerClassName();
     if (!self::$request->isDispatched()) {
         $controller->{$actionFuncName}();
     }
 }
 public function postDispatch(Request $request)
 {
     if (!$request->isDispatched()) {
         return false;
     }
     $this->setRequest($request);
     $stack = $this->getStack();
     if ($this->getCount() == 0) {
         return;
     }
     $next = $this->pop();
     if (!$next || $next === null) {
         return;
     }
     $this->forward($next);
 }