function setName($name)
    {
        $selfCurrName = $this->getName();

        if ($name == $selfCurrName)
            // Nothing To Do!!!
            return $this;


        # Change Route Name:
        $this->name = (string) $name;


        ## Change Name of Nested Routes:
        #
        /** @var iRoute $route */
        foreach($this->_priorityQueue() as $route) {
            $nestedName    = $route->getName();
            $nestedNewName = $name. substr($nestedName, strlen($selfCurrName));

            $route->setName($nestedNewName);

            $nr = $this->routesAdd[$nestedName];
            $nr->setName($nestedNewName);

            unset( $this->routesAdd[$nestedName] );
            $this->routesAdd[$nestedNewName] = $nr;
        }


        return $this;
    }