I've faced this question in my homework.
In a graph $G=(V,\ E)$ where every $v\in V$ has a color, a colored path is a path such that it has at least one vertex of each color.
We're given a directed graph $G=(V,\ E)$, weight function $w:E\rightarrow \mathbb{N}^+$ (in other words the weights are positive) and every vertex is colored one of $\{r,g,b\}$. We're required to find the lightest colored path from a given vertex $s\in V$ to every $v\in V$ (including $s$ itself). Such a path may not be simple. If such a path doesn't exist then the lightest path equals $\infty$.
I solved this problem where edges instead of vertices are colored. The problem where vertices are colored is harder in my opinion.
It is clear we have to use Dijkstra's algorithm.
I thought of a possible solution of splitting every vertex to two vertices and then adding an edge between these two copies but the problem is still with the edges between the main vertices which we can't decide which color to give them.