code: function (object, event, callback) {
          var index = this.indexOf(object);
          var listener = this.listeners[index];
          if (listener) {
              var callbacks = listener.events[event];
              if (callbacks) {
                  var index = callbacks.indexOf(callback);
                  if (index != -1) {
                      callbacks.splice(index, 1);
                  }
  
                  // remove the array when empty
                  if (callbacks.length == 0) {
                      delete listener.events[event];
                  }
              }
  
              // count the number of registered events. remove listener when empty
              var count = 0;
              var events = listener.events;
              for (var e in events) {
                  if (events.hasOwnProperty(e)) {
                      count++;
                  }
              }
              if (count == 0) {
                  delete this.listeners[index];
              }
          }
      }
docs: Remove an event listener
  @param {Object} object
  @param {String} event       The name of an event, for example 'select'
  @param {function} callback  The registered callback method