Routes and $page->url() doesn't match

I used the following route from the Doc:

c::set('routes', array(
  array(
    'pattern' => '(:any)',
    'action'  => function($uid) {

      $page = page($uid);

      if(!$page) $page = page('blog/' . $uid);
      if(!$page) $page = site()->errorPage();

      return site()->visit($page);

    }
  ),
  array(
    'pattern' => 'blog/(:any)',
    'action'  => function($uid) {
      go($uid);
    }
  )
));

In my Menu the old “/blog/my-article” is linked (generated automatic) by $page->url(). The redirect works correct (if I click on my link linked to “/blog/my-article” will be redirected to “/my-article”). But in the html sourcecode “/blog/my-article” is linked. Is there a way to automatic set the $page->url() to the new route ("/my-article") defined in the config.php?

This is a similar post:

That works great, thanks!