public function routeRequest()
	{
		if($this->bound('router')){
			try {
				$pluginRequest = $this['request'];
				$this['router']->matched(function ($event) {
					global $wp_query;
					$wp_query->is_404 = false;
					$this->route_dispatched = true;
				});
				$response = $this['router']->dispatch($pluginRequest);
				if ($route = $pluginRequest->route()) {
					foreach ($route->computedMiddleware as $middleware) {
						$instance = $this->make($middleware);
						if (method_exists($instance, 'terminate')) {
							$instance->terminate($pluginRequest, $response);
						}
					}
				}
				if($this->bound('session')) {
					$this['session']->save();
				}
				$response->send();
				exit;
			}catch (\Exception $e) {
				$this->reportException($e);
				$this->renderException($pluginRequest, $e);
			} catch (\Throwable $e) {
				$this->reportException($e = new FatalThrowableError($e));
				$this->renderException($pluginRequest, $e);
			}
		}
	}