IF all of your dates have a '-' AND none of your text has a '-':
=IIF(Fields!TEST.Value like "*-*", FORMAT(CDATE(Fields!TEST.Value), "dd-MMM") ,Fields!TEST.value)
Not tested, but should work. Edited to return an actual date.
Edit: after some more experimentation, it dawned on me that what you want would result in the SSRS column having an inconsistent type (date/string), and I don't think it is possible to have both string types and date types in the same column.
My mistake was not to realize this sooner.
In order to return actual dates, you will need to clean/filter your data.