Q. Can I create custom routes in Azure virtual networks?
A. Typically in a virtual network which is broken up into virtual subnets, Azure automatically enables connectivity between the subnets with Azure providing a gateway. If you place a virtual network appliance in Azure and wish that to act as the connectivity between subnets, you need to modify the routing so traffic external to the subnet is set to an alternate IP address.
It is also possible to create custom routes for Internet bound traffic (for example if you wish to force tunneling to on-premises) and even traffic within the subnet. This is achieved using the User Defined Routes (UDR) feature which is fully documented here and here.
Note: If using ExpressRoute, which uses BGP, routes take precedence over UDRs. If using UDRs to send traffic to a virtual appliance, then the receiving Azure VM will need IP Forwarding enabled. That will allow the Azure VM to receive traffic that is not addressed to it.