If you end up rerouting a controller, both the beginning and destination controller trigger the controller_pre_dispatch event listeners.
Realized this was happening now because I have something that happens within that event, but only on the 2nd page view. On the main forum page it would never happen because the first page view run controller_pre_dispatch twice (rerouting Index to Forum internally).
Maybe it's by design... but just in case it's not, here's the report. I worked around it by only allowing the my code to run once per request.