That's 3 egress routes and can be done with one device.
There are various ways to configure a router to choose which route to use from always use this route to use this route for these destinations or just for this client et. al.
The underlying LUCI GUI would offer some additional configuration but you will probably need to write a custom script to create the routing table you want.
You might be able do it with VLANs and MACVLAN from the LUCI GUI if you want to use pick the egress based on host.
You could do it even more simply by running three subnets on the network and using the DHCP server to assign the subnet based on the host MAC. Default to Internet subnet unless the host is configured for VPN or TOR.
192.168.1.1 -> Internet
192.168.2.1 -> VPN
192.168.3.1 -> TOR
Hold off until firmware version 4.8.0 is out of beta. It's coming up as the next release for the Slate AX & Flint v2. v4.8.1-beta is for the Slate 7.
We'll have to wait & see if the VPN 'composite policy' (traditionally called policy-based routing) includes TOR. Then I'm sure it's just a matter of time before PBR comes to the Flint v3.