Hi Minas,
Try adding debug logging in the iRule to help you determine what's happening versus what you expect to happen. You can start with a single log line at the beginning of the rule:
log local0. "[IP::client_addr]:[TCP::client_port]: [HTTP::method] request to host [HTTP::host] and URI [HTTP::uri]"
Normally, the URI won't contain the host. If you want to check for requests being made to xpro.xx.tt, you'd probably want to check the HTTP::host output. If you've defined the pool on the virtual server, you don't need to specify it in the rule.
Also, the value for HTTP::uri is cached within the HTTP_REQUEST event. So if you retrieve it, set it using HTTP::uri "/new_uri" and then try to retrieve the updated value, HTTP::uri will still show the original cached value.
Aaron