'Borrowed' code from symofony routing, particularly annotation loader, and started an annotation compiler chain