code: function RegisterEndpoint(method, path, _desc, _callback) {
      if(!_.isString(path)) {
        throw new Error("Invalid path for " + path + " (" + method + ")");
      }
      var desc = (typeof _desc === 'string' ? _desc : null),
        callback = (typeof _desc === 'function' ? _desc : (typeof _callback === 'function' ? _callback : null));
      var name = method + ":" + path.replace(/\//g, '.');
      if(name.charAt(0) === '.') name = name.substr(1);
      if(typeof this.__endpoints[name] !== 'undefined') {
        throw new Error("Previously registered endpoint " + path + " in namespace "+ this.__namespace + "(" + method + ")");
      }
      ENDPOINT_COUNTER++;
      var endpointChain = new RouteChain(name, path, method, SERVER);
      endpointChain.__namespace = this.__namespace;
      if(desc) endpointChain['desc'] = desc;
      if(callback) endpointChain.then(callback);
      this.__endpoints[name] = endpointChain;
      /* We allow route chaining of utility functions. After a route endpoint has been created,
       * we can attach additional data / utility functions to it. */
      return endpointChain;
    }
docs: /*
  Registers the GET/POST/PUT/DELETE methods.