[eluser]Robert Wallis[/eluser]
You are very close, it actually doesn't have to do with the presence of parameters in index(). It's all about routes.
The routes work on a first matching basis. So if the index route has an :any at the end of it, the page name won't be used. The best solution is the one you found to put the other actions above your index. You could also exclude the action name in a regex on the index route.