code: function(iteratee, memo, name, callback, context, ctx) {
    var i = 0, names, length;
    if (name && typeof name === 'object') {
      // Handle event maps.
      for (names = _.keys(name), length = names.length; i < length; i++) {
        memo = iteratee(memo, names[i], name[names[i]], context, ctx);
      }
    } else if (name && eventSplitter.test(name)) {
      // Handle space separated event names.
      for (names = name.split(eventSplitter), length = names.length; i < length; i++) {
        memo = iteratee(memo, names[i], callback, context, ctx);
      }
    } else {
      memo = iteratee(memo, name, callback, context, ctx);
    }
    return memo;
  }
docs: Iterates over the standard `event, callback` (as well as the fancy multiple space-separated events `"change blur", callback` and jQuery-style event maps `{event: callback}`), reducing them by manipulating `events`. Passes a normalized (single event name and callback), as well as the `context` and `ctx` arguments to `iteratee`.