1. A router, comprising: one or more router configuration registers; a plurality of network ports, wherein each network port supports a plurality of virtual channels, wherein each network port includes: an input; an output; an input buffer connected to the input, wherein the input buffer includes a port router and a plurality of virtual channel input buffers, wherein each virtual channel input buffer receives data from the input corresponding to an associated one of the plurality of virtual channels and wherein the port router selects a packet from one of the virtual channel input buffers and sends the selected packet to one of the other network ports; a plurality of staging buffers, wherein each staging buffer is associated with a particular virtual input buffer in one of the other network ports; and a multiplexer, connected to the staging buffers and to the output, for selecting data stored in the staging buffers to be transferred to the output; and connection means, connected to each of the plurality of network ports, for connecting each network port to each of the other network ports, wherein the connection means includes means for transferring data stored in a virtual channel input buffer in one network port to its corresponding staging buffer in any of the other network ports.