def find_action(self, rules, filename):
        for (filename_pattern, action) in rules:
            if re.match(filename_pattern, filename):
                return action
        return None
If a bundle dependency is changed, the cache may not be
dataset/ETHPy150Open dropbox/emmer/emmer/response_router.py/ResponseRouter.find_action--crossover with--dataset/ETHPy150Open miracle2k/webassets/tests/test_bundle_build.py/TestAutoBuild.dependency_refresh_with_cache