public function create($routeName, array $data = array(), array $query = array())
    {
        if(strpos($routeName, '@') === 0)
            $route = $this->rootRouter->findRoute(substr($routeName, 1));
        else
            $route = $this->map->findRoute($routeName);

        if(!$route)
            throw new NotFoundException('Unable to find route ['.$routeName.']');

        $path = $route->getAbsolutePath($data);

        return $this->base($path).($query ? '?'. http_build_query($query) : null);
    }