Sub-Graph Isomorphism for graphs with multiple edge types and multiple node types
You can replace each edge $(u,v)$ with two edges $(u,t_0)$ and $(t_0,v)$ where $t_0$ is a new vertex (a different one for each edge you replace), and then color the vertex $t_0$ based on the type of the edge $(u,v)$.