Why does this simple Akka Streams program never terminate?
<p>Should be a simple question.  I'm using Akka 2.4.2 (contains Akka Streams &amp; HTTP).  I expected this <code>Source</code> to complete &amp; the program to terminate because the <code>Source</code> is finite, but it never does.  Why doesn't this program terminate?</p>

<pre><code>import scala.concurrent._
import scala.collection.immutable._
import akka._
import akka.actor._
import akka.stream._
import akka.stream.scaladsl._
import akka.util._

object Test extends App {

  implicit val system = ActorSystem("TestSystem")
  implicit val materializer = ActorMaterializer()

  val s = Source.single(1)
  s.runForeach(println)
}
</code></pre>

<p>Output:</p>

<pre><code>$ sbt run
...
[info] Running Test
[DEBUG] [02/23/2016 10:59:19.904] [run-main-0] [EventStream(akka://TestSystem)] logger log1-Logging$DefaultLogger started
[DEBUG] [02/23/2016 10:59:19.904] [run-main-0] [EventStream(akka://TestSystem)] Default Loggers started
1
</code></pre>

<p>Relevant portion of my <code>build.sbt</code> file:</p>

<pre><code>scalaVersion  := "2.11.7"

scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")

libraryDependencies ++= {
  val akkaVersion = "2.4.2"
  Seq(
    "com.typesafe.akka" %%  "akka-stream" % akkaVersion
  )
}
</code></pre>