Refactor: sort by alphabetical order
Add DSL to register new type-pattern mapping
Add boolean constraint