In Xautoload / Krautoload at some time I had addNamespaceRoot() and addNamespaceDeep(). Still this does not explain the handling of underscores. So we'd have addNamespaceDeepButDontTouchMyUnderscores()..

addPackage() does not make it clear to me that we are talking about autoload namespaces. I would think there is something fancy going on, now our autoloader can do more than just autoloading, it can add packages.. (e.g. it could grab the composer.jon from a package and register everything it finds in there). addPackageNamespaceDir() would resolve this. But then again it's a long name.

I'm ok with what Jordi said above.

If the time comes where PSR proposals get into 2 or 3 digits, we might not want a addPsr123(). But even then, addPsr4() will still be ok.

Btw, we already have "psr-0" in composer.json. We will probably get "psr-4" there too. So then it is not so far off to name this method addPsr4(). (while the addPsr0 is currently just add(), but I think we can live with that)