chainrouter did that since the beginning afaik. it was added to DynamicRouter