* Add optional_variables in ConditionalRouter * Add reno note * Add more unit test with various complex scenarios * Add more unit tests * Add pylint disable=too-many-positional-arguments * PR feedback from @sjrl