2% faster (total) by using __slots__ in AdapterMatch
2% faster by avoiding tuple pack/unpack
make AdapterMatch.length an attribute instead of a property (tiny bit faster)