public function getFullRoutes()
	{
		// if has saved already, return that.
		if($this->fullRoutes !== null)
			return $this->fullRoutes;

		$routes = array();

		$routes[] = $this;
		
		$group = $this->group;

        /** @var Route $route */
		while($route = $group->getUpperRoute())
		{
			$routes[] = $route;

			// recursively refer to upperRoute's group
			$group = $route->getGroup();
		}

		$this->fullRoutes = array_reverse($routes);

		return $this->fullRoutes;
	}