CHG: Reworking implementation. Introduce "Event" like handling of various define() orders in single file.
ADD: Added more test cases. Renamed some existing test cases for more readability.
ADD: Update README.md.