Certainly!  As Kassym noted, Router.routes contains a list of all the routes.  However it contains the router functions, so you'll have to go and grab their names with <code>route.<b>getName()</b></code>.  The default route doesn't have a name, so you'll have to grab the .path() instead.
The whole thing should look like this in your helper:
<!-- language: lang-js -->
Template.allRoutes.helpers({
  paths: function () {
    var allRoutes = _.map(Router.routes, function(route){
      var routeName = typeof route.getName() === 'undefined' ?
                      route.path() :
                      route.getName(); 
      return {route: routeName}
    });
    return allRoutes
  }
});
And this in your template:
<!-- language: lang-html -->
<template name="allRoutes">
  {{#each paths}}
    <li><a href="{{pathFor route}}">{{route}}</a></li>
  {{/each}}
</template>
Note: Remember to enclose pathFor in curly brackets because it is a helper method.  It will execute javascript and inherit the current datacontext, so you can pass it any property from the current context.
In order to display an sub paths of n depth, you can recursively call your template like this:
<!-- language: lang-html -->
<template name="subpaths">
  <ul>
  {{#each subpaths}}
    <li>
      <a href="{{pathFor path}}">{{path}}</a>
      {{#if subpaths}} {{>subpaths}} {{/if}}
    </li>
  {{/each}}
  </ul>
</template>
Demo in meteor pad
For more info, see getting the names of all routes for the accounts-entry package