Q. Can I create custom routes in Azure virtual networks?
A. In a virtual network which is broken up into virtual subnets, Azure provides a gateway that automatically enables connectivity between the subnets. 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 at https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-udr-overview/ and https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-udr-how-to/#How-to-manage-routes.
Note if using ExpressRoute which uses BGP routes then UDRs take precedence. If using UDRs to send traffic to a virtual appliance then the receiving Azure VM will need IP Forwarding enabled which will allow it to receive traffic that is not addressed to it.