{Backport of functools.singledispatch from Python 3.4}

WWW: https://github.com/jaraco/singledispatch
