add the currencypattern attribute and extend the unittest
Remove Weakref usage

- While it initially worked, usage has grown problematic as we've done more
  performance optimizations, and as Weakref itself has changed. What I found was
  that Weakref and the GC were cleaning up early, making listeners disappear -
  and thus making tests fail unexpectedly. Since we never want a listener to
  disappear, it makes sense to remove this functionality.
[#4373] Updated README

- Added note about removal of Weakref.
extracted route matcher into separate class
refactored unit tests
Renamed to "ConsoleRouteMatcher"