Using toDefs()

Testing the toDefs and Use methods

// Tux image is from creative commons, I didn't create it!

var s = Snap("#svgout");
var tux = Snap.load("Dreaming_tux.svg", function ( loadedFragment ) {
        s.append( loadedFragment );
        var tux = s.select("#tux");
        tux.toDefs();
        var tuxDef = s.select("#tux");
        var u1 = tuxDef.use();
        s.append( u1 );
        var bb = u1.getBBox();
        u1.animate( { transform: 'r360' + ',' + bb.cx + ',' + bb.cy }, 2000);

        var u2 = tuxDef.use().attr({ x: 200, y: 200 });
        s.append( u2 );
        var bb2 = u2.getBBox();
        u2.animate( { transform: 'r360' + ',' + parseInt(bb2.cx + 200) + ',' + parseInt(bb2.cy + 200 )}, 4000);


                                        } );


   
        
The actual svg markup looks like this (when you've clicked on run)....