add singleton to pattern analysis
fix fingerprint generation