May be it helps you to see more easily the way to attack the problem.
The first that you could try  it's find or understand the recursive relation behind *Floyd-Warshall Algorithm*. As the next function $f$.

$$
f(u,v,k) = \begin{cases}
w_{u,v} & k = 0\\
\min\, (\ f(u,v, k-1),\ f(u,k,k-1) + f(k,v,k-1)) & \text{otherwise}
\end{cases}
$$

 - $w_{u,v}$ it's the weight of edge from $u$ to $v$ in the direct graph $G$. $\infty$ if that edge doesn't exist.
 - $f(u,v,k)$ is the weight of a shortest path from $u$ to $v$ if you consider the first $k$ vertices as intermediates.


----------


To adapt the above function form for your problem, I'd sketched the essence of the  problem in the next graph:

 - ![enter image description here][1]
 - $m_i\in E_0$
 - $l_i\in E_1$
 - The curly curve is the shortest path considering the first $k-1$ vertices.
 - You have a alternate path that consider the $k$ node when you see the pattern (normal-$k$-dashed) lines in the path, or with convention above: (dashed-$k$-normal) line or $(m_i, l_j)^*$ , $(l_i, m_j)^*$ pattern in general.

So the next step it's construct the recursive relation looking the connection between subproblems, and for that you could think for a moment that your function solve the problem for a small size of problem, or instances pattern (follow principle of optimality).

 
$$
f(u,v,k,i) = \begin{cases}
w_{u,v,i} & k = 0\\
\min\, (\ f(u,v, k-1,i),\ f(u,k,k-1,~i) + f(k,v,k-1,i)) & \text{otherwise}
\end{cases}
$$
 

 - $w_{u,v,i}$ is the weight for the edge in $E_i$  (Note that I change enumeration of $E$ for convenience). $\infty$ if that edge doesn't exist.
 - $f(u,v,k,i)$ is the weight of a shortest path that ended up with a edge in $E_i$ that consider  the first $k$ vertices as intermediates like the graph above. 
 - $~i = 0$ if $i = 1$ or $1$ if $i = 0$.

So, the weight of the shortest alternate path from $u$ to $v$ is $\bf{min(f(u,v,|V|,0), f(u,v,|V|,1))}$ where $|V|$ is the number of vertices.

Of course, after some work, you could notice that:

 - It's possible delete parameter $k$
 - you could implement iterative version or use a memorization technique.
 - Other details, that I'm forgiving. It's late.

I'd wrote a python code/ and input test file if you can play with that. But, Here, it's not important. 

  [1]: https://i.sstatic.net/1M8hj.png