I'm a bit confused by the terms "redirect" and "forward" you use; it seems that when you say "forward" you mean "redirect" (i.e. 3xx response).
However, I think what you're looking for is the following:
1) For certain requests you want to issue a Redirect (i.e. 3xx) so the client will make another request to the new URL. For this you would still use HTTP::respond (or HTTP::redirect, which is an alias for HTTP::respond 302).
2) For other certain requests you want to pick another pool, which would simply mean that you tell the LTM to use a pool that's different from the one you configured as the default pool. See https://devcentral.f5.com/wiki/iRules.pool.ashx for details on how to use the "pool" command.