code: function(identifier, optionsOrHandler) {
              if (typeof optionsOrHandler !== 'function') {
                  // it's options
                  optionsOrHandler = handlerTemplates[optionsOrHandler.type || 'standard'](optionsOrHandler);
              }
              if (identifier instanceof RegExp) {
                  patternHandlers.push({
                      pattern: identifier,
                      handler: optionsOrHandler
                  });
              } else {
                  handlers[identifier] = optionsOrHandler;
              }
          }
docs: Register an event handler
  @param identifier {string} the event type (first part of event definition)
  @param handlerOrOptions {function(options, callback) *OR* options object}
  
  handlerOrOptions as function(options, callback) a function which returns the object used as the event handler.
  @param options {object}: will contain a *path* attribute - the event key (without the handler key prefix).
  if the custom handler was registered as "foo" and events hash was { "foo:abc": "..." }, the path is "abc"
  @param callback {function}: the callback function to be bound to the event
  
  handlerOrOptions as options: will use a predefined "standard" handler;  this assumes the event format of "{handler identifier}:{target identifier}:{event name}"
  @param target {object or function(targetIdentifier, eventName)} the target to bind/unbind from or the functions which retuns this target
  @param onKey {string} the attribute which identifies the event binding function on the target (default is "on")
  @param offKey {string} the attribute which identifies the event un-binding function on the target (default is "off")