var router = new Router()

			.addRoute('#/search/', function(req,next){
			 	console.group();
			 	console.log('Matched /query/. Checking for query parameter' );
			 	console.log('Using req.get("q")',req.get('q'));
			 	console.log('Using req.get("missing_param","default value")',req.get("missing_param","default value"));
			 	console.log(req.query);
			 	console.groupEnd();
			 })
			 .addRoute('#/:username', function(req, next){

				 console.group();
				 console.log('Routed to user',req.params.username);
				  console.log('Can also use req.get(\'username\')',req.get('username'));
				 console.log(arguments);
				 console.groupEnd();
			 })
			 
			 .route(/#\/foo\/bar\/?(.*)/i,function(req, next){
				 console.group();
				 console.log('Matched regexp path');
				 if(req.splats && req.splats[0]){
					 console.log(req.splats[0]);
				 }
				 console.log(arguments);
				 console.groupEnd();
			 })
			 
			 .route('#/custom/*', function(req, next){
				 console.group();
				 console.log('Matched everything after /custom/' );
				 console.log(arguments);
				 if(req.hasNext){
					 next(new Error(),500);
				 }
				 console.groupEnd();
			 })
			 
			 .route('#/custom/**', function(req, next){
				 console.group();
				 console.log('Matched everything after /custom/' );
				 console.log(arguments);
				 if(req.hasNext){
					 next(new Error(),500);
				 }
				 console.groupEnd();
			 })
			 
			 .errors(404,function(){
				 console.group();
				 console.warn('404',arguments);
				 console.groupEnd();
			 })
			 
			 .errors(500,function(){
				 console.group();
				 console.error('500',arguments);
				 console.groupEnd();
			 })
			 
			 .before(function(req,next){
				 console.group();
				 console.log('Before',arguments);
				 if(req.href == '#/custom/error')
					 next(new Error('Before Errored'),403);
				 else
					 next();
				 console.groupEnd();
			 });