Pymunk has a pretty neat collision system using spaces and groups. It supports handlers/callbacks to notify about collision. I strongly suspect this can scale much better the generic sprite collision we're currently using in many cases. Especially of you're doing N x M collision checks and can't use spatial hashing due to both spritelists being highly dynamic.