By the way, while I remember, route_load doesn't deal well with a subdir in /programs0/routes/

It's Jan's program, so I think it's Jan's call, but this isn't a huge surprise. The contents of /programs0/routes/ are traversed and put into an array without checking for e.g. ISREG. If it's not going to deal with directories maybe it should at least do that, but since it's all traversed up-front, and the name of the file is the name of the route, the simplest way of dealing would result in routes named e.g. foo/bar. Is that reasonable? What happens if the name is bigger than the display is wide?