ShuffleCopy is very similar to the Shuffle node I already covered here. The main difference is that you have two input pipes instead of one. Just like with a merge node where the B input is the main pipe, in a ShuffleCopy you want to comp of the number 2 pipe. In this case we want to bring passes from our CG render into our background element, so input number 2 goes in the background and input 1 in the CG element. 

By default, we get the alpha from input 1 (A pipe) and the RGB from input 2 (B pipe).

By default, both pipe 1 and 2 are set to RGBA and we get RGB from input2 but the alpha from input1. The result of the node is therefore the RGB from the background with the alpha of the plane. This is a common use of the ShuffleCopy, it's a fast way to copy the alpha from one element to another one without having to change anything. 

Of course we can copy whole passes across. Let's say we want to copy the normal pass from our CG element to our smoke element, we can select "normals" in the dropdown menu for input1. In this case the rendered calls the layers in the normal pass XYZ instead of RGB but that doesn't make a difference in the way things work. If you shuffle X into red, Y into green and Z into blue we now have shuffle the normal pass from the CG element to the RGB output of the node. 

Shuffling the normal from input 1 to the normal pass of the output. RGBA channels remain unchanged.

What would make more sense is to shuffle and copy the normal pass from the CG element to the normal pass of the main pipe. And you can do this by switching the output from rgba to normals. This way the RGBA channels remain untouched and we now have a normal pass at the output of the node. You can check it out by switching your viewer to "normals" 

Creating a new custom layer.

You can go further by adding a second output layer. This way the normal pass from our CG element would not only be copied to the normal pass of the main pipe, but also shuffled to another pass. In the dropdown menu on the lower right you can select any layer or create a new one. Name the layer and by pressing the rgba button, Nuke will automatically name the channels for this layer. In this case you we're going to delete alpha since we don't need it. 

Now our input 1 normals are copied in the output normals and copied in "newLayer"

By default it will shuffle the input from input 2 in this output. If we viewed our newly created layer we could see it's the same as what's coming down the input 2 pipe (the background). If we check the marks for input1 to shuffle into our new input we now get our normals. 

Most of the time it doesn't make much sense to make things this complicated. I usually don't use the second layer output on the lower right as it makes things a little confusing.