lib/objective/globals/pipeline.js
function(event, opts, fn, anyway) {
                                  //
                                 // does not exist yet, subscribe anyway
    var _arguments = arguments;
    var args = Object.keys(arguments).map(function(key){return _arguments[key]});
    event = args.shift();
    opts = args.shift();
    if (typeof opts == 'string') opts = {label:opts};
    if (typeof opts == 'function') {
      fn = opts;
      anyway = args.shift();
      opts = {label:'untitled'};
    } else {
      fn = args.shift();
      anyway = args.shift();
    }

    if (fn.$$pipeid) return fn.$$pipeid;
    Object.defineProperty(fn, '$$pipeid', {
      enumareble: false,
      configurable: false,
      writable: false,
      value: generate()
    });

    var base;
    if (typeof pipeline.pipes[event] === 'undefined' && !anyway) {
      error("No such event '" + event + "'");
      throw new Error("No such event '" + event + "'");
    }
    debug("pipeline registering handler on event '" + event + "'");
    (base = pipeline.pipes)[event] || (base[event] = []);
    pipeline.pipes[event].push({
      opts: opts,
      fn: fn,
      caller: objective.getCaller(1)
    });
    return fn.$$pipeid;
  }
function(event, opts, fn, anyway) {
                                  //
                                 // does not exist yet, subscribe anyway
    var _arguments = arguments;
    var args = Object.keys(arguments).map(function(key){return _arguments[key]});
    event = args.shift();
    opts = args.shift();
    if (typeof opts == 'string') opts = {label:opts};
    if (typeof opts == 'function') {
      fn = opts;
      anyway = args.shift();
      opts = {label:'untitled'};
    } else {
      fn = args.shift();
      anyway = args.shift();
    }

    if (fn.$$pipeid) return fn.$$pipeid;
    Object.defineProperty(fn, '$$pipeid', {
      enumareble: false,
      configurable: false,
      writable: false,
      value: generate()
    });

    var base;
    if (typeof pipeline.pipes[event] === 'undefined' && !anyway) {
      error("No such event '" + event + "'");
      throw new Error("No such event '" + event + "'");
    }
    debug("pipeline registering handler on event '" + event + "'");
    (base = pipeline.pipes)[event] || (base[event] = []);
    pipeline.pipes[event].push({
      opts: opts,
      fn: fn,
      caller: objective.getCaller(1)
    });
    return fn.$$pipeid;
  }
optional