code: function Controller(mountpoint, path) {
      return (ctr) => {
          let c = exports.globalKCState.getOrInsertController(ctr);
          c.explicitlyDeclared = true;
          if (mountpoint != undefined) {
              if (typeof (mountpoint) === "string") {
                  c.path = mountpoint;
              }
              else {
                  exports.globalKCState.registerMountPoint(mountpoint, ctr);
                  c.path = (typeof (path) === "string") ? path : ctr.name;
              }
          }
          else {
              c.path = ctr.name;
          }
          c.path = U.UrlJoin("/", c.path);
      };
  }
docs: *******************************************************
  Class Decorators
  ******************************************************* 
  Registers a new controller.
  @param { string | Controller } [mountpoint] - An string indicating a path, or a Controller to mount over. If not present, the name of the class will be used as path.
  @param { string } [path] - Used if mountpoint is a Controller. If not present, the name of the class will be used as path.