Make the website agent support merge events

Refactoring the website agent so that it can merge events.
Hmm, you should make `check_url` an iterator method if it returns an array only to iterate over in the caller.