public function path($name=null)
    {
        if (!$name || in_array($name, ['/', '.', 'root', 'app'])) {
            return $this->path;
        }

        list($scope, $path) = $this->splitNameAndPath($name);

        // If no scope was passed, just return an absolute url appended to root path
        if (!$scope) {
            return $this->path->append($path);
        }

        if (!isset($this->paths[$scope])) {
            throw new KeyNotFoundException("No path found with name '$scope'");
        }

        $url = $this->paths[$scope] instanceof UrlContract ? $this->paths[$scope] : new Url($this->paths[$scope]);

        return $path ? $url->append($path) : $url;

    }