Added RouteValueOrigin enum instead of bool "FromBody" flag
as we need more options here, including an unknown value
More unit tests
Refactor and got most tests passing
All passing