code: function _gpfStreamPipe (source, destination) {
      _gpfIgnore(destination);
      var iReadableStream = _gpfStreamQueryReadable(source),
          iWritableStream = _gpfStreamPipeToWritable(_gpfArrayTail(arguments)),
          iFlushableStream = _gpfStreamPipeToFlushable(iWritableStream);
      try {
          return iReadableStream.read(iWritableStream)
              .then(function () {
                  return iFlushableStream.flush();
              });
      } catch (e) {
          return Promise.reject(e);
      }
  }
docs: Pipe streams.
  
  @param {gpf.interfaces.IReadableStream} source Source stream
  @param {...gpf.interfaces.IWritableStream} destination Writable streams
  @return {Promise} Resolved when reading (and subsequent writings) are done
  @since 0.2.3