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 is operable to select 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 and coupled to receive data from a particular 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 within the router, 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, wherein each of the virtual channel staging buffers in a network port is associated with and operable to receive data from one of the virtual channel input buffers in one of the other network ports, and wherein each of the staging buffers in a network port includes a same number of virtual channel staging buffers as virtual channel input buffers are present in other coupled network ports in the router.