Not documented: stream.readable() is fired once when read is impossible. I think, that just before 'end' event.
Current documentation says: When a chunk of data can be read from the stream. But in that case, chunk CAN_NOT be read (stream.read() will return null).