code: function eventSequencer() {
    var self = object.create(eventSequencer.prototype);
    EventEmitter.call(self);
  
    self.sequences = {};
    self.received = {};
  
    self.pipedEmitter = null;
  
    return self;
  }
docs: Controls the sequence of events, accepts events in any sequence and re-emits
  them in the right sequence once it gets all the events in the sequence.
  If no sequence is defined the event is re-emitted immediatelly.
  
  Useful to abstract transport layer timming issues and garantee a given
  event sequence
  
  Assumed that there is a single event of each time on each the sequence
  The sequences are assumed to be compatible, that is to say the sequence of
  shared events must be the same in every sequence