add selection sort using pattern matching and recursive
change method name from filter to filterFirst because the behavior is filter only first match element
add implicit conversion ListFilterOne from List
add shuffle algorithm