I don't even know Python, but after looking at it for a couple of minutes, I had a sense:
1. mutating the `methods` parameter directly, I don't even care if it works, is a bad idea
2. naming the thing methods and method might trip something up
By just changing the code so that we declare the local methods array (name it methodsX or something else) to be empty, this fixed the first 3 problems (where the function is empty). I don't know enough of Python syntax to make it accept the second parameter being a array of functions.