Motivation:
it would be very common when we want a dedicated graph run on x dispatcher, I suggest we add something like the reactor-core, which can be much clear than the current addAttributes(ActorAttributes.dispatcher(dispatcher).
publishOn(dispatcher:String) for Source
subscribeOn(dispatcher:String) for Sink
runOn(dispatcher:String) for RunnableGraph
eg:
def runOn(dispatcher:String)(implicit materializer: Materializer): Mat =
materializer.materialize(addAttributes(ActorAttributes.dispatcher(dispatcher)))