Refactored to use symfony 2 routing component