DRY routing implemented via optional named groups with a question mark.