ggplot group por uma variável categórica e cor por uma segunda

Basicamente eu gostaria de criar o primeiro gráfico mostrado abaixo em R usando ggplot, mas com os dois objetos no mesmo gráfico (sem envolvimento de faceta).

Considere um exemplo mínimo que imite minha estrutura de dados:

library(reshape2)
library(ggplot2)
x <- seq(1, 5, length = 100)
y <- replicate(10, sin(2 * pi * x) + rnorm(100, 0, 0.3), "list")
z <- replicate(10, sin(2 * pi * x) + rnorm(100, 5, 0.3), "list")
y <- melt(y)
z <- melt(z)
df <- data.frame(x = y$Var1, rep = y$Var2, y = y$value, z = z$value)
dat <- melt(df, id = c("x", "rep"))

Posso traçar isso com

ggplot(dat) + geom_line(aes(x, value, group = rep, color = variable), 
    alpha = 0.3) + facet_wrap(~variable)

E pegue

http://carlboettiger.info/assets/figures/2012-12-18-NA-unnamed-chunk-2.png

Mas se eu tentar eliminar o envolvimento da faceta, pensei que deveria agrupar por cor e variável, mas, em vez disso, os dados não são quebrados corretamente, resultando em absurdo:

http://carlboettiger.info/assets/figures/2012-12-18-NA-unnamed-chunk-3.png

questionAnswers(2)

yourAnswerToTheQuestion