Use overloading instead of specialization in matcher adapter selector