How can I change the behavior of a dispatcher contract depending on
the page being requested?

Specifically, how can I make a template be used for a request of
"projectDetails/foo.html" and "projectDetails/foo/bar.html", but not
for "projectDetails/index/byCategory.html"?

Note that overriding the theme with "projectDetails/theme.fv" and
"projectDetails/index/theme.fv" does not work as I would have
expected, the second theme requested is never used. This looks like a
cache problem, is it?

Ross