The basic queue is a first-in-first-out linear data structure (software component). It can be considered as a communication device with one input port and one output port. In the paper, we investigate the behavior of an extended queue that has one input channel and multiple output channels. An enter-queue command enters a data item into the queue as does an ordinary queue, but a de-queue command removes the front item and sends it to a specific output channel. This is similar to the function of a simplified message router. We define a set of stream functions to map between input stream and output stream to describe the behavior of the queue. Because of the items in the input stream may be re-ordered to meet the "routing" requirements, we call the software component "permutable queue."