docs: function mount_with_folder(app, routes_folder_path) {
    stack = [];// empty when enter
  
    var r         = arguments[1] || './routes';
    var is_debug  = arguments[2] || false;
  
    r = path.resolve(require('path').dirname(require.main.filename), r)
    
    global.routes_folder_path = r;
    
    // debug('mount routes_folder_path = ' + r)
    routes = requireDirectory(module, r);
    
    // middlewares
    router.middlewares = require('./middlewares')(r)
    
    // TODO: views
    // app.set('views', path.join(r, 'views'));
    // app.set('view engine', 'pug');
    app.use(views(path.join(r, 'views'), { extension: 'pug' }))
  
    // static server
    // app.use(express.static(path.join(r, 'public')));
    // $ GET /package.json
    app.use(serve(path.join(r, 'public')));
    
  
    router.get('/api.json', function (ctx) {
      ctx.body = {
        data: stack
      }
    })
  
    // mount
    mount(router) ;
    
    app
      .use(router.routes())
      .use(router.allowedMethods());
    
    if(is_debug){
      _dump (routes_folder_path);
    }
  }