code: function (reg_exp, params_a, cb) {
    if (!(this instanceof RouteNode)) { return new RouteNode(reg_exp) }
    if (!reg_exp) { throw new Error('route needs a regexp to be defined') }
    if (typeof params_a === 'function' && !cb) {
      cb = params_a
      params_a = null
    }
  
    var self = this
  
    self.children = []
    self.regexp = reg_exp
    self.key = self.regexp.toString()
    self.callback = cb  //callback is optional, if we don't have a callback, it means that we aren't an executable route,
    if (params_a) { self.params = params_a }
  }
docs: for testing purposes , DEBUG = false , debug  if (DEBUG) { debug = function() { console.log.apply(console, [].slice.call(arguments)) } } else { debug = function(){} } /*
  @param {RegExp} reg_exp
  @param {Array} params_a    =>  represents 'colon' in '/hello/:colon'
  @param {Function} cb  => callback