Add match-token
Fix
Add tests
Fixes
Add some more tests
More fixes and tests
Separate macro-extracting functionality into a separate function
Add pattern matcher