What about forking your own module? Instead of making a 2nd Foo::Bar, make Foo::Bar::Mine or whatever. If you're worried about missing important patches to the original, write your code to load the original and change the bahavior. If the original is object oriented, then you subclass and override, if not I think you call it monkey-patching, but it works basically the same. You can also make patches from the current original module and your altered version and the apply the patches to any new version of the original.