Well, it doesn't look too easy =)
What you gonna do then is:
Implement your contact merging code. You can't just inherit from ContactMergeService (and this I think is a kind of indicator from Kentico team it is not a recommended way). You would also need to decompile and move implementation of IContactMergeOnlineUsersUpdater interface as it is internal.
public class CustomContactMergeService : IContactMergeService
{
// use decompiled implementation of ContactMergeService
// and add your logic to MergeContactByEmail method
}
Register this implementation on startup (I'm not sure it's needed for CMS project but I would do it for both CMS and MVC)
CMS.Core.Service.Use<IContactMergeService>(new CustomContactMergeService());
BUT
There is a potential problem with this method
ContactInfoProvider.GetContactInfo(email);
as I think it would return first of your duplicated contacts and you should be aware of it. So potentially if you use email marketing and Kentico might be using this method for sending emails chances are you will have only one email sent for 2 contacts with the same email address using first found contact name.