PauseStream
This is a Stream that will strictly buffer when paused. Connect it to anything you need buffered.
  var ps = require('pause-stream')();
  badlyBehavedStream.pipe(ps.pause())
  aLittleLater(function (err, data) {
    ps.pipe(createAnotherStream(data))
    ps.resume()
  }) 
PauseStream will buffer whenever paused. it will buffer when yau have called pause manually. but also when it's downstream dest.write()===false. it will attempt to drain the buffer when you call resume or the downstream emits 'drain'
PauseStream is tested using stream-spec and stream-tester
This is now the default case of through
https://github.com/dominictarr/pause-stream/commit/4a6fe3dc2c11091b1efbfde912e0473719ed9cc0
 JarCasting
 JarCasting