          ),
          # Dynamically generated list routes.
          # Generated using @list_action or @list_link decorators
          # on methods of the viewset.
          Route(
              key='collection',
              url=r'^{prefix}/{methodname}{trailing_slash}$',
              mapping={
                  '{httpmethod}': '{methodname}',
              },
              name='{basename}-{methodnamehyphen}',
 
</s> remove         Route(
            key='dynamic',
 </s> add         DynamicDetailRoute( </s> remove             mapping={
                '{httpmethod}': '{methodname}',
            },
 </s> add  </s> remove             mapping={
                '{httpmethod}': '{methodname}',
            },
 </s> add  </s> remove             elif route.key == 'collection':
 </s> add             elif isinstance(route, DynamicListRoute): </s> remove         known_actions = flatten([route.mapping.values() for route in self.routes])
 </s> add         known_actions = flatten([route.mapping.values() for route in self.routes if isinstance(route, Route)])
        DynamicListRoute(
          ),
          # Dynamically generated list routes.
          # Generated using @list_action or @list_link decorators
          # on methods of the viewset.
        DynamicListRoute(
        DynamicListRoute(
              url=r'^{prefix}/{methodname}{trailing_slash}$',
              mapping={
                  '{httpmethod}': '{methodname}',
              },
              name='{basename}-{methodnamehyphen}',
keep keep keep keep replace replace keep keep keep keep keep
 Introduce DynamicDetailRoute and DynamicListRoute to distinguish between different route types 
rest_framework/routers.py