Counting and Sorting Sublist

I am trying to take a list and determine which ones have 2 points, 3 points, and everything else to send to a NurbsCurv.ByControlPoint in order to smooth out the lines. When I just send the list to a NurbsCurv with 3 degrees it sends nulls for everything under 4 points. I need the list to apply NurbsCurve then send the list intact when I send it to DetailCurve.ByCurve. I am having trouble trying to organize my thoughts.