For singe port/service forwards use 'rdr':
pf.conf(5)
Code:rdr The packet is redirected to another destination and possibly a different port. rdr rules can optionally specify port ranges instead of single ports. rdr ... port 2000:2999 -> ... port 4000 redirects ports 2000 to 2999 (inclusive) to port 4000. rdr ... port 2000:2999 -> ... port 4000:* redirects port 2000 to 4000, 2001 to 4001, ..., 2999 to 4999.
The host that receives the forwarded traffic of course still needs to have the proper routes in place to send out reply traffic.
'route-to' should _never_ be used for actual routing, as the replies won't be affected by the rule. This will lead to very weird and almost non-debuggable asymmetric routing problems and should only be used for *very* special and temporary use cases (e.g. during transitions of IPs/hosts).
But it was writing on manual, and even could apply config successful, but really didn't take effect, I guess this make user more confused than the "routing problem".
Manual should metion this: route-to is still not implement, choose rtable if someone try to routing packet base on source address in pf.