Though I found monkeypatching liberating like everyone else, it has me worried, because there's no detailing of an interface between different modules that get included or monkey patched. It all comes with an assumption.
It takes a clear and simple architecture and some discipline to make sure your code doesn't all go to hell when you place monkey patch on top of monkey patch.