I was learning towards `map[string]*pipeline` here to save memory, but I never figured out the locking/copying that would be necessary for `processEvent()`.